//Copyright (c) 2006-2007 Microsoft Corporation.  All rights reserved
using System;

namespace InvocationFramework.Adapters.Inproc.Attributes
{
    /// <summary>
    /// Atributo utilizado para marcar un metodo como operacion de un servicio
    /// </summary>
    /// <author>Rodolfo Finochietti 03/11/2005 14.18</author>
    [AttributeUsage( AttributeTargets.Method, Inherited = true, AllowMultiple = false )]
    public sealed class OperationAttribute : Attribute
    {
        #region Constructors

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">Nombre de la operacion</param>
        public OperationAttribute( string name )
        {
            _name = name;
        }

        #endregion

        #region Properties

        /// <summary>
        /// Variable privada para el manejo de la propiedad
        /// </summary>
        private readonly string _name;

        /// <summary>
        /// Nombre de la operacion
        /// </summary>
        public string Name
        {
            get
            {
                return _name;
            }
        }
        
        /// <summary>
        /// Variable privada para el manejo de la propiedad
        /// </summary>
        private string _description;

        /// <summary>
        /// Descripcion de la operacion
        /// </summary>
        public string Description
        {
            get
            {
                return _description;
            }
            set
            {
                _description = value;
            }
        }

        #endregion
    }
}